/**
 * Generali Solutions d'assurances - Tous droits réservés &copy; 2007 - 2010
 */
package fr.generali.accueilclient.client.om;

import java.util.Date;
import java.util.List;

import fr.generali.accueilclient.opt.recherchemulticriteres.om.IDossierRechMultiCriteres;
import fr.generali.accueilclient.resume.contrat.om.IResumeContrat;
import fr.generali.accueilclient.resume.sinistre.om.IResumeSinistre;
import fr.generali.accueilclient.resume.suspens.om.IResumeSuspens;
import fr.generali.accueilclient.tigre.consultationsolde.om.IEnteteConsultationSolde;

/**
 * Interface de description d'un client
 * 
 * @author selrhazala
 */
public interface IPersonne extends INaturePersonne {

    /**
     * @return le numéro de client
     */
    String getNumeroClient();

    /**
     * @param numeroClient le numéro de client
     */
    void setNumeroClient(String numeroClient);

    /**
     * @return le numéro de client agent
     */
    String getNumeroClientAgent();

    /**
     * @param numeroClientAgent le numéro de client agent
     */
    void setNumeroClientAgent(String numeroClientAgent);

    /**
     * @return the pointDeVente
     */
    String getPointDeVente();

    /**
     * @param pointDeVente the pointDeVente to set
     */
    void setPointDeVente(String pointDeVente);

    /**
     * @return the chargeClientele
     */
    String getChargeClientele();

    /**
     * @param chargeClientele the chargeClientele to set
     */
    void setChargeClientele(String chargeClientele);

    /**
     * @return la date de création du client
     */
    Date getDateDebut();

    /**
     * @param date la date de création du client
     */
    void setDateDebut(Date date);

    /**
     * @return le type du client
     */
    String getTypeClient();

    /**
     * @param typeClient le type du client
     */
    void setTypeClient(String typeClient);

    /**
     * @return le code intermédiaire
     */
    String getCodeIntermediaire();

    /**
     * @param code le code intermédiaire
     */
    void setCodeIntermediaire(String code);

    /**
     * @return le libellé intermédiaire
     */
    String getLibelleIntermediaire();

    /**
     * @param libelle le libellé intermédiaire
     */
    void setLibelleIntermediaire(String libelle);

    /**
     * @return l'adresse principale
     */
    IAdresse getAdressePrincipale();

    /**
     * @param adresse l'adresse principale
     */
    void setAdressePrincipale(IAdresse adresse);

    /**
     * @return la liste des adresses
     */
    List<IAdresse> getListeAdresse();

    /**
     * @param listeAdresse la liste des adresses
     */
    void setListeAdresse(List<IAdresse> listeAdresse);

    /**
     * @return la liste des téléphones
     */
    List<ITelephone> getListeTelephone();

    /**
     * @param telephones la liste des téléphones
     */
    void setListeTelephone(List<ITelephone> telephones);

    /**
     * @return l'email
     */
    IEmail getEmail();

    /**
     * @param email l'email
     */
    void setEmail(IEmail email);

    /**
     * @return la liste des emails
     */
    List<IEmail> getListeEmail();

    /**
     * @param emails la liste des emails
     */
    void setListeEmail(List<IEmail> emails);

    /**
     * @return the listeSiteInternet
     */
    List<ISiteInternet> getListeSiteInternet();

    /**
     * @param listeSiteInternet the listeSiteInternet to set
     */
    void setListeSiteInternet(List<ISiteInternet> listeSiteInternet);

    /**
     * @return the listePieceIdentite
     */
    List<IPieceIdentite> getListePieceIdentite();

    /**
     * @param listePieceIdentite the listePieceIdentite to set
     */
    void setListePieceIdentite(List<IPieceIdentite> listePieceIdentite);

    /**
     * @return les informations de démarchage
     */
    ICommunication getCommunication();

    /**
     * @param communication les informations de démarchage
     */
    void setCommunication(ICommunication communication);

    /**
     * @return les coordonnées bancaires
     */
    ICoordonneeBancaire getCoordonneeBancaire();

    /**
     * @param coordonneeBancaire les coordonnées bancaires
     */
    void setCoordonneeBancaire(ICoordonneeBancaire coordonneeBancaire);

    /**
     * @return la liste des rib
     */
    List<ICoordonneeBancaire> getListeCoordonneesBancaires();

    /**
     * @param listeCoordonneesBancaires la liste des rib
     */
    void setListeCoordonneesBancaires(List<ICoordonneeBancaire> listeCoordonneesBancaires);

    /**
     * @return l'environnement de la personne
     */
    IEnvironnement getEnvironnement();

    /**
     * @param environnement l'environnement de la personne
     */
    void setEnvironnement(IEnvironnement environnement);

    /**
     * @return la charte d'accompagnement
     */
    ICharte getCharte();

    /**
     * @param charte la charte d'accompagnement
     */
    void setCharte(ICharte charte);

    /**
     * @return le compte espace client
     */
    String getCompteEspaceClient();

    /**
     * @param compteEspaceClient le compte espace client
     */
    void setCompteEspaceClient(String compteEspaceClient);

    /**
     * @return les contrats de la personne
     */
    List<IResumeContrat> getContrats();

    /**
     * @param contrats les contrats de la personne
     */
    void setContrats(List<IResumeContrat> contrats);

    /**
     * @return les sinistres de la personne
     */
    List<IResumeSinistre> getSinistres();

    /**
     * @param sinistres les sinistres de la personne
     */
    void setSinistres(List<IResumeSinistre> sinistres);

    /**
     * @return les suspens de la personne
     */
    IResumeSuspens getSuspens();

    /**
     * @param suspens les suspens de la personne
     */
    void setSuspens(IResumeSuspens suspens);

    /**
     * @return opportunites de la personne
     */
    List<IDossierRechMultiCriteres> getOpportunites();

    /**
     * @param opportunites les opportunites de la personne
     */
    void setOpportunites(List<IDossierRechMultiCriteres> opportunites);

    /**
     * @return the consultationSolde
     */
    IEnteteConsultationSolde getConsultationSolde();

    /**
     * @param consultationSolde the consultationSolde to set
     */
    void setConsultationSolde(IEnteteConsultationSolde consultationSolde);

    /**
     * @return true si c'est une personne physique
     */
    boolean isPersonnePhysique();

    /**
     * @return true si c'est un ancien client
     */
    boolean isAncienClient();

    /**
     * @return la dénomination incomplète : nom + prénom ou raison sociale
     */
    String getDenominationCourte();

    /**
     * @return true si la personne est entièrement chargée (P42 ou P44 selon la
     *         version de BC)
     */
    boolean isFullLoaded();

    /**
     * @param value true si la personne est entièrement chargée (P42 ou P44
     *            selon la version de BC)
     */
    void setFullLoaded(boolean value);

    /**
     * @return true si la personne est partiellement chargée (P41)
     */
    boolean isPartialLoaded();

    /**
     * @param value true si la personne est partiellement chargée (P41)
     */
    void setPartialLoaded(boolean value);

    /**
     * @return titreCourrier
     */
    String getTitreCourrier();

    /**
     * @param titreCourrier titreCourrier
     */
    void setTitreCourrier(String titreCourrier);

    /**
     * @return secteurActivite
     */
    String getSecteurActivite();

    /**
     * @param secteurActivite secteurActivite
     */
    void setSecteurActivite(String secteurActivite);

    /**
     * @return precisionActivite
     */
    String getPrecisionActivite();

    /**
     * @param precisionActivite precisionActivite
     */
    void setPrecisionActivite(String precisionActivite);

    /**
     * @return debutActivite
     */
    Date getDebutActivite();

    /**
     * @param debutActivite debutActivite
     */
    void setDebutActivite(Date debutActivite);

    /**
     * @return finActivite
     */
    Date getFinActivite();

    /**
     * @param finActivite finActivite
     */
    void setFinActivite(Date finActivite);

    /**
     * @return nbResidences
     */
    String getNbResidences();

    /**
     * @param nbResidences nbResidences
     */
    void setNbResidences(String nbResidences);

    /**
     * @return the nbVehicules
     */
    String getNbVehicules();

    /**
     * @param nbVehicules the nbVehicules to set
     */
    void setNbVehicules(String nbVehicules);

    /**
     * @return idClientFue
     */
    String getIdClientFue();

    /**
     * @param idClientFue idClientFue
     */
    void setIdClientFue(String idClientFue);

    /**
     * @return clientVIP
     */
    boolean isClientVIP();

    /**
     * @param clientVIP clientVIP
     */
    void setClientVIP(boolean clientVIP);

    /**
     * @return origineClient
     */
    String getOrigineClient();

    /**
     * @param origineClient origineClient
     */
    void setOrigineClient(String origineClient);

    /**
     * @return mediaOrigine
     */
    String getMediaOrigine();

    /**
     * @param mediaOrigine mediaOrigine
     */
    void setMediaOrigine(String mediaOrigine);

    /**
     * @return typeProcedure
     */
    String getTypeProcedure();

    /**
     * @param typeProcedure typeProcedure
     */
    void setTypeProcedure(String typeProcedure);

    /**
     * @return dateJugement
     */
    Date getDateJugement();

    /**
     * @param dateJugement dateJugement
     */
    void setDateJugement(Date dateJugement);

    /**
     * @return the pollicitable
     */
    boolean isPollicitable();

    /**
     * @param pollicitable the pollicitable to set
     */
    void setPollicitable(boolean pollicitable);

    /**
     * @return the assurableEnSante
     */
    boolean isAssurableEnSante();

    /**
     * @param assurableEnSante the assurableEnSante to set
     */
    void setAssurableEnSante(boolean assurableEnSante);

    /**
     * @return the actif
     */
    boolean isActif();

    /**
     * @param actif the actif to set
     */
    void setActif(boolean actif);

    /**
     * @return the dateCreation
     */
    Date getDateCreation();

    /**
     * @param dateCreation the dateCreation to set
     */
    void setDateCreation(Date dateCreation);

    /**
     * @return the dateDernierMaj
     */
    Date getDateDernierMaj();

    /**
     * @param dateDernierMaj the dateDernierMaj to set
     */
    void setDateDernierMaj(Date dateDernierMaj);

    /**
     * @return the datePassageClient
     */
    Date getDatePassageClient();

    /**
     * @param datePassageClient the datePassageClient to set
     */
    void setDatePassageClient(Date datePassageClient);

    /**
     * @return the dateFinClient
     */
    Date getDateFinClient();

    /**
     * @param dateFinClient the dateFinClient to set
     */
    void setDateFinClient(Date dateFinClient);

    /**
     * @return the espaceClient
     */
    boolean isEspaceClient();

    /**
     * @param espaceClient the espaceClient to set
     */
    void setEspaceClient(boolean espaceClient);

    /**
     * @return the indicateursDemat
     */
    IIndicateursDemat getIndicateursDemat();

    /**
     * @param indicateursDemat the indicateursDemat to set
     */
    void setIndicateursDemat(IIndicateursDemat indicateursDemat);
    
    /**
     * @return the donneeMarketing
     */
    IDonneeMarketing getDonneeMarketing();

    /**
     * @param donneeMarketing the donneeMarketing to set
     */
    void setDonneeMarketing(IDonneeMarketing donneeMarketing);
}
